package com.syq;

import java.util.function.BiFunction;
import java.util.function.Function;

/**
 * @author Sun Yueqi
 * @version 1.00
 * @time 2022/6/8 19:18
 */
public class TestFunction {
    public static void main(String[] args) {
//        Function<String,Integer> function=new Function<String, Integer>() {
//            @Override
//            public Integer apply(String s) {
//                if (s!=null){
//                    return s.length();
//                }
//                else{
//                    return 0;
//                }
//            }
//        };
//        Integer result = function.apply("cai");
//        System.err.println(result);

        Function<String,Integer> function=param->{
            if (param!=null){
                return param.length();
            }
            return 0;
        };
        System.err.println(function.apply("003"));

        Function<Integer,Integer> integerFunction=param->{
            return param*20;
        };
        System.err.println(integerFunction.apply(15));

        Function<Integer,Integer> integerFunction1=param->{
          return param+10086;
        };
        //第一个函数作为第二个函数的参数，apply输入第一个函数的数据
        System.err.println(integerFunction.andThen(integerFunction1).apply(10));
        //第二个函数作为第以个函数的参数，apply输入第二个函数的数据
        System.err.println(integerFunction.compose(integerFunction1).apply(10));
    }
}
